package com.basic.auth.service;



import com.basic.auth.dao.model.AuthUserFunc;
import com.basic.auth.domain.AuthFuncBo;
import com.basic.auth.domain.AuthUserFuncBo;

import java.util.List;

/**
 * 用户功能管理
 *
 * @author lpp
 * @version 1.0
 * @Date 2018/8/14 19:21
 */
public interface AuthUserFuncService {

    /**
     * 条件查询授权人boId
     *
     * @param userFuncBo
     * @return java.util.List<java.lang.Long>
     * @author lpp
     * @date 13:51 2019/8/21
     */
    List<String> selAuthBoIdListByParam(AuthUserFuncBo userFuncBo);

    /**
     * 根据参数查询用户的功能
     *
     * @param userFuncBo
     * @return java.util.List<com.nxin.middle.basic.auth.domain.AuthUserFuncBo>
     * @author lpp
     * @date 16:44 2019/4/25
     */
    List<AuthUserFunc> selUserFuncListByParam(AuthUserFuncBo userFuncBo);

    /**
     * 根据boid、系统id、子系统id查询用户的功能（关联功能表）
     *
     * @param userFuncBo
     * @return java.util.List<com.nxin.middle.basic.auth.dao.model.AuthUserFunc>
     * @author LPP
     * @date 18:44 2018/8/15
     **/
    List<AuthUserFuncBo> selUserFuncWithFuncListByParam(AuthUserFuncBo userFuncBo);

    /**
     * 根据boid、系统id、子系统id删除用户的功能
     *
     * @param userFunc
     * @return java.util.List<com.nxin.middle.basic.auth.dao.model.AuthUserFunc>
     * @author LPP
     * @date 18:44 2018/8/15
     **/
    int delUserFuncByParam(AuthUserFunc userFunc);

    /**
     * 增加用户功能(删除历史数据)
     *
     * @param
     * @param userFuncBo
     * @return void
     * @author LPP
     * @date 19:25 2018/8/14
     **/
    void addUserFuncs(AuthUserFuncBo userFuncBo);

    /**
     * 增加用户该系统下的所有功能
     *
     * @param userFuncBo
     * @return void
     * @author lpp
     * @date 10:30 2019/4/8
     */
    void addUserFuncsBySysId(AuthUserFuncBo userFuncBo);

    /**
     * 查询用户是否授权当前功能（若非末级节点则连带查询子孙节点）
     *
     * @param authUserFuncBo
     * @return
     * @author LS
     * @date 13:12 2020/3/20
     */
    AuthFuncBo selSpecUserFunc(AuthUserFuncBo authUserFuncBo);
}
